Here below, we shall discuss the drawbacks of the prior art with reference to the particular case of a real-time video distribution system.
In a system of real-time video distribution between a source application, such as for example a video content coming from a DVD player, and at least one receiver application, for example a television set, the video applications data should be rendered to the receiver applications with the same temporal parameters as those associated with the original data stream (i.e. at the instants of presentation of the images). Thus, it is necessary to render the start of each image to the receiver applications at a rate equivalent to the one observed in the source application.
In a communications network in which it is sought to synchronize different applications, the technical problem that arises is that of the synchronization, at each receiver application, of the instants of rendering of the data sent out by a same application source or the synchronization of the instants of rendering of the data sent out by several source applications. In other words, in a synchronous communications network, it is sought to master the latency of transmission (or transport latency) between each of the data-generating applications (i.e. the source applications) and each of the data-consuming applications (i.e. the receiver applications).
To resolve this problem of synchronization, it is generally used a synchronous transfer mode. Indeed, the use of a synchronous transfer mode in a communications network guarantees a constant latency of transport of data on the network.
In certain situations, the implementation of a synchronous transfer mode of this kind is not sufficient. This is the case for example for video distribution systems which include a pre-transmission processing system (included in a source node also called a sending node or sender device) connected to the source applications and to the devices for post-transmission processing (included in a receiver node also called a receiver device) connected to the receiver applications. For example, the pre-transmission processing device receives applications data given by the source application and compresses this data before transmitting it on the network, and the post-transmission processing device receives the compressed applications data coming from the network and decompresses this data before rendering it to the receiver application. Generally, the pre-transmission processing devices and the post-transmission processing devices used have variable processing latencies. Thus, when several receivers display the same video content, the starting points of images at the receivers may be phase-shifted.
Generally, a network using a synchronous transfer mode implements a network clock and defines a transmission network cycle (or TDM cycle) of applications data on the network. The source node of the network has a source applications clock (or generator applications clock). Thus, the source node receives the applications data coming from the source application at the rate of the source applications clock, and then processes the received applications data before transmission on the network at the rate of the network clock. The receiver node of the network has a receiver applications clock (or consumer applications clock). Thus, the receiver node receives applications data from the sender node at the rate of the network clock and then processes the applications data received before reading at the rate of the receiver applications clock.
The applications clock of each node is a clock derived from its local oscillator (i.e. its local quartz oscillator). Although the nominal frequency of all the local oscillators is identical, the defects inherent in these oscillators cause drifts between the application clocks of the different nodes (i.e. between the (source) application clock of the source node and the (receiver) application clock of the receiver node). Such drifts may give rise to a modification of the temporal parameters associated with the video stream between the source application and the receiver application, i.e. the receiver node may return to a situation in which it consumes applications data with excessive speed or far too slowly relative to the rhythm dictated by the source application. Thus, these phenomena may give rise to breaks in the quality of service of the video application but also may cause the memory size to be exceeded at different stages of the system.
In the case of the above-mentioned video distribution systems, it is therefore necessary to implement a synchronization mechanism to correct the drift between the source application clock of the source node and the receiver applications clock of the receiver node in order to ensure constant transport latency between the source application and the receiver application.
There are several known techniques in the prior art for correcting a drift between source application clocks and receiver application clocks. Most of these known techniques strive to compare the counter of the source applications clock with the counter of the receiver application clock and deduce any drift therefrom.
For example, the technique described in the patent application WO 2006/052339 proposes to periodically send out the value of the counter of the source applications clock, the period of this transmission being proportional to the clock network. The receiver node re-generates the receiver clock on the basis of the network clock and the value of the counter of the source applications clock received.
One major drawback of these prior art techniques lies in the fact that they necessitate the frequent sending of control information associated with the source applications clock during a same video frame. This therefore has the effect of reducing the payload bandwidth for the application.
Another drawback of these prior art techniques is that they call for the use of a phase-locked loop that is cumbersome and costly (in terms of complexity and consumption of electricity) in order to smoothen the receiver application clock.
In addition, in the case of the above-mentioned video distribution systems, in order to guarantee constant transport latency (despite variable processing latency values), one prior-art solution implements synchronization protocols at the level of the applications layers.
The principle of this type of synchronization protocols relies on the use of temporal information (or synchronization information) measured at the level of the source application. More specifically, the pre-transmission processing devices compute the temporal information and then insert it in a predetermined format into the applications data before transmission on the network. The post-processing transmission devices receive the data coming from the network and extract the pieces of temporal information from the data received and then use it. These pieces of temporal information define the (relative or absolute) instants of rendering of the start of each of the video images at each of the receiver applications. Among the pre-transmission and post-transmission processing devices of the prior art implementing this type of synchronization protocol, we may cite especially video compression/decompression devices (known as “codec” devices) which manage PTS (Presentation Time Stamp), DTS (Decoding Time Stamp) or PCR (Program Clock Reference) type temporal information presented within the encoded video frames.
In the prior art, the known synchronization protocols use a time reference common to all the applications of the network. This common time reference may be defined either from a global clock (or a network clock) given by the network or from a local clock included in each application. In the latter case, it is necessary to synchronize the different local clocks in frequency through another synchronization protocol.
This prior-art solution (which consists in implementing synchronization protocols at the applications layers) nevertheless has certain drawbacks.
First of all, to the extent that the piece of synchronization information is formatted and managed within compression/decompression devices, the use of additional pre-processing devices or post-processing devices (aimed for example at implementing error correction, filtering, resolution adaptation, rhythm conversion and other mechanisms), placed for example upstream or downstream relative to the compression/decompression devices, dictates the setting up of additional synchronization mechanisms, the precise details of which will depend on the performance of the different processing devices present within the different applications.
Moreover, should many destination nodes of a same source implement different post-transmission processing operations before rendering data, the above-mentioned prior-art solution has the drawback of not taking account of the differences in processing time observed between the different post-transmission processing operations before the rendering of the data.